package org.yzhzc.system.domain.question.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

/**
 * 问题详情视图对象 (QuestionDetailVO)
 * 用于封装单个问题的详细信息，提供给前端进行展示。
 */
@Data
public class QuestionDetailVO {

    // 使用 Jackson 序列化时，将 Long 类型的 questionId 转换为 String，避免精度丢失
    @JsonSerialize(using = ToStringSerializer.class)
    private Long questionId;  // 问题 ID

    private String title;  // 问题标题

    private Integer difficulty;  // 问题难度，通常是一个整数，表示问题的难易程度

    private Long timeLimit;  // 时间限制，单位为毫秒

    private Long spaceLimit;  // 空间限制，单位为字节

    private String content;  // 问题的具体内容描述

    private String questionCase;  // 问题的测试用例（或样例）

    private String defaultCode;  // 问题的默认代码模板

    private String mainFuc;  // 问题的主函数，通常是代码的入口函数
}
